package com.ruoyi.income.service;

import java.util.List;

import com.ruoyi.contarctbill.dto.PayIncomeDTO;
import com.ruoyi.income.domain.HouseContarctIncome;
import com.ruoyi.income.domain.SumContarctIncome;

/**
 * 计划详情Service接口
 * 
 * @author hct
 * @date 2022-02-16
 */
public interface IHouseContarctIncomeService 
{
    /**
     * 查询计划详情
     * 
     * @param id 计划详情主键
     * @return 计划详情
     */
    public HouseContarctIncome selectHouseContarctIncomeById(Long id);

    /**
     * 查询计划详情列表
     * 
     * @param houseContarctIncome 计划详情
     * @return 计划详情集合
     */
    public List<HouseContarctIncome> selectHouseContarctIncomeList(HouseContarctIncome houseContarctIncome);

    /**
     * 新增计划详情
     * 
     * @param houseContarctIncome 计划详情
     * @return 结果
     */
    public int insertHouseContarctIncome(HouseContarctIncome houseContarctIncome);

    /**
     * 修改计划详情
     * 
     * @param houseContarctIncome 计划详情
     * @return 结果
     */
    public int updateHouseContarctIncome(HouseContarctIncome houseContarctIncome);

    /**
     * 批量删除计划详情
     * 
     * @param ids 需要删除的计划详情主键集合
     * @return 结果
     */
    public int deleteHouseContarctIncomeByIds(Long[] ids);

    /**
     * 删除计划详情信息
     * 
     * @param id 计划详情主键
     * @return 结果
     */
    public int deleteHouseContarctIncomeById(Long id);



    /**
     *
     * @param incomeList
     * @param userName
     * @param userId
     * @return
     * @throws Exception
     */
    public Object payCurrMonthBill(List<PayIncomeDTO> incomeList,String userName,Long userId)  throws Exception;


    /**
     * 自定义费项并生成
     * @return
     * @throws Exception
     */
    public Object makeAllfeeItem(Long contractId,Long feeSetId,Float fee,String userName) throws Exception;

    /**
     * 记录首页数量
     * @param houseContarctIncome
     * @return
     */
    public SumContarctIncome sumIncome(HouseContarctIncome houseContarctIncome);
}
